package com.ydd.controller.admin;


import com.ydd.entity.Menu;
import com.ydd.result.Result;
import com.ydd.service.IMenuService;
import com.ydd.vo.SysMenuAllDateVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 菜单表 前端控制器
 * </p>
 *
 * @author hgz
 * @since 2023-05-30
 */
@RestController
@Slf4j
@RequestMapping("/admin/sys_menu")
public class MenuController {
    @Autowired
    private IMenuService iMenuService;

   //@GetMapping("/allData")
   //public Result<Map<String,Object>> allData(){
   //
   //    Map<String,Object> map ;
   //    return Result.success();
   //}

    /**
     * 新增数据
     * @param menu 实体对象
     * @return 新增结果
     */

    @ApiOperation("新增数据")
    @PostMapping("/add")
    public Result add(@RequestBody Menu menu) {
        log.info("新增数据:{}",menu);

        //调用业务类新增数据
        iMenuService.insertSysMenu(menu);

        return Result.success(null);
    }



    /**
     * 菜单详情
     * @return
     */
    @ApiOperation("菜单详情")
    @GetMapping("/rowInfo")
    public Result<Menu> rowInfo(Integer id){

        log.info("菜单详情:{}",id);

        Menu menu = iMenuService.rowInfo(id);

        return Result.success(menu);
    }


    /**
     * 菜单删除
     * @param id 主键结合
     * @return 删除结果
     */

    @ApiOperation("菜单删除")
    @GetMapping("/del")
    public Result delete(@RequestParam String id) {
        log.info("菜单删除:{}",id);

        //调用业务类进行数据删除
        iMenuService.deleteBySysMenuId(id);

        return Result.success(null);

    }


    /**
     * 菜单修改
     * @param menu
     * @return
     */
    @ApiOperation("菜单修改")
    @PostMapping("/update")
    public Result Menuupdate(@RequestBody Menu menu){

        log.info("菜单修改:{}",menu);

        iMenuService.Menuupdate(menu);

        return Result.success();
    }


    /**
     * 所有菜单
     * @return 所有数据
     */
    @ApiOperation("所有菜单")
    @GetMapping("/allData")
    public Result selectAll() {
        log.info("所有菜单");

        //调用业务类查询所有菜单
        List<SysMenuAllDateVO> sysMenuList = iMenuService.selectAllSysMenu();

        //返回数据
        return Result.success(sysMenuList);
    }


}
